package br.com.framework.client.web;

import java.io.Serializable;

import org.hibernate.criterion.Order;

public class TipoOrdenacaoPaginador implements Serializable {

	private static final long serialVersionUID = 7684633591249973265L;

	public static enum TIPO_ORDENACAO {
		ASC, DESC;

		public String toString() {
			return super.toString().toLowerCase();
		}
	}

	private TIPO_ORDENACAO tipoOrdenacao;
	private String campo;

	public TipoOrdenacaoPaginador(TIPO_ORDENACAO tipoOrdenacao, String campo) {
		this.tipoOrdenacao = tipoOrdenacao;
		this.campo = campo;
	}

	public TIPO_ORDENACAO updateOrder() {
		if (tipoOrdenacao == TIPO_ORDENACAO.ASC) {
			tipoOrdenacao = TIPO_ORDENACAO.DESC;
		} else {
			tipoOrdenacao = TIPO_ORDENACAO.ASC;
		}
		return tipoOrdenacao;
	}

	public Order getOrder() {
		if (tipoOrdenacao == TIPO_ORDENACAO.ASC) {
			return Order.asc(campo);
		} else {
			return Order.desc(campo);
		}
	}

	public TIPO_ORDENACAO getTipoOrdenacao() {
		return tipoOrdenacao;
	}

	public void setTipoOrdenacao(TIPO_ORDENACAO tipoOrdenacao) {
		this.tipoOrdenacao = tipoOrdenacao;
	}

	public String getCampo() {
		return campo;
	}

	public void setCampo(String campo) {
		this.campo = campo;
	}
}
